package br.com.sgc.dao;

import java.math.BigDecimal;

import javax.ejb.Stateless;

import org.hibernate.Criteria;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

import br.com.sgc.entities.financeiro.ItemCompra;
import br.com.sgc.entities.produto.ProdutoFinal;

@Stateless
public class ItemCompraDao extends GenericDao<ItemCompra> {

	private static final long serialVersionUID = -3929006136441965709L;

	public BigDecimal findCustoMedio(ProdutoFinal produto) {
		Criteria criteria = getCriteria(ItemCompra.class);
		criteria.add(Restrictions.eq("produto.id", produto.getId()));
		criteria.setProjection(Projections.avg("valorUnitario"));
		criteria.createAlias("pedidoCompra", "pedidoCompra");
		criteria.add(Restrictions.eq("pedidoCompra.finalizado", Boolean.TRUE));
		return new BigDecimal((Double) criteria.uniqueResult()); 
	}
	

}
